package cn.rkylin.oms.base.refundReasonType.dao;

import java.util.List;
import java.util.Map;

import cn.rkylin.oms.base.refundReasonType.domain.EcRefundReason;
import cn.rkylin.oms.base.refundReasonType.domain.RdfundReasonRelation;
import cn.rkylin.oms.base.refundReasonType.domain.RdfundReasonType;

/**
 * 退款原因类型访问层
 * 
 * @author qitao
 * @version 1.0
 * @created 17-7月-2017
 */
public interface IRdfundReasonTypeDAO {

    /**
     * 查询退款原因类型根据退款原因编码
     * 
     * @param params 数据参数
     */
    public int getRdfundReasonTypeCountByCode(Map<String, Object> params) throws Exception;

    /**
     * 插入退款原因类型
     * 
     * @param params 数据参数
     */
    public int insertRdfundReasonType(Map<String, Object> params) throws Exception;

    /**
     * 查询退款原因类型
     * 
     * @param params 数据参数
     */
    public RdfundReasonType getRdfundReasonTypeInfo(Map<String, Object> params) throws Exception;

    /**
     * 修改退款原因类型
     * 
     * @param params 数据参数
     */
    public int updateRdfundReasonType(Map<String, Object> params) throws Exception;

    /**
     * 删除平台退款原因关联为退款原因类型
     * 
     * @param params 数据参数
     */
    public int deleteRdfundReasonRelationForType(Map<String, Object> params) throws Exception;

    /**
     * 删除退款原因类型
     * 
     * @param params 数据参数
     */
    public int deleteRdfundReasonType(Map<String, Object> params) throws Exception;

    /**
     * 查询平台退款原因关联list
     * 
     * @param params 数据参数
     */
    public List<RdfundReasonRelation> getRdfundReasonRelationList(Map<String, Object> params) throws Exception;
    
    /**
     * 删除平台退款原因关联
     * 
     * @param params 数据参数
     */
    public int deleteRdfundReasonRelation(Map<String, Object> params) throws Exception;

    /**
     * 查询平台退款原因list
     * 
     * @param params 数据参数
     */
    public List<EcRefundReason> getEcRefundReasonList(Map<String, Object> params) throws Exception;

    /**
     * 查询平台退款原因是否已经被匹配
     * 
     * @param params 数据参数
     */
    public int getRefundReasonRelationCountByCondition(Map<String, Object> params) throws Exception;

    /**
     * 插入平台退款原因关联
     * 
     * @param params 数据参数
     */
    public int insertRdfundReasonRelation(Map<String, Object> params) throws Exception;

    /**
     * getRdfundReasonTypeInfo:根据平台退款单原因获取系统退款单信息. <br/>
     *
     * @author zhanghao
     * @param ecRefundReason
     * @return
     * @throws Exception
     */
    RdfundReasonType getRefundReasonTypeInfo(String ecRefundReason) throws Exception;

}
